An enterprise, or its computing systems, may employ various software packages to manage data within the organization. The software portion of an enterprise computing system may include various modules that may be used alone or be integrated with other modules. For example, an organization may employ a supply chain management (SCM) module to support the organization's manufacturing operations; another organization may employ a customer relations management (CRM) module to log interactions between, for example, a marketing department and a prospective customer or a support department and a current customer; and yet another example organization may employ a financials module to budget its operations, pay suppliers and employees, and receive payment from customers. Some organizations may employ an enterprise resource planning (ERP) system that integrates each of these modules into a single system. Many large organizations utilize enterprise software, such as ERP software, to centrally manage data for various departments of the organization and to automate various organization activities. In general, ERP software allows a company to efficiently process data that is used by multiple departments. As an example, a manufacturing company may employ an ERP system to manage its manufacturing, sales, and financial departments. More particularly, an ERP system may provide resources for a sales department to track orders for products; resources for a purchasing department to track orders for parts needed to manufacture the ordered products; resources for a manufacturing department to track products through the manufacturing process and to manage inventory; resources for a sales department to track order fulfillment and generally manage interactions with customers; and resources for a financial department to track parts costs, pay suppliers, track orders and process payments for fulfilled orders.
In short, these distributed applications use business logic and data that span web servers, application servers, middleware, and mainframe systems. While most businesses have traditional monitoring software to manage these complex applications, many lack an integrated solution to automatically monitor, analyze and resolve problems at the service, transaction, application and resource levels, and to immediately respond to detected problems in a timely fashion or to predict problems that may lie ahead.
Such conventional information technology (IT) systems require considerable time, effort, knowledge and experience in order to implement, monitor, and operate on a day-to-day basis. Even large IT departments often become lost in a maze of complex tools and technologies and thousands of pages of administration guides that are usually necessary to operate and maintain the components of the distributed applications. Moreover, IT departments, in particular IT administrators, can be overwhelmed with various day-to-day reactive support tasks and often have limited resources and operating budgets to handle those support tasks. Such tasks typically include normal system management activities, such as manually monitoring, checking and clearing log files, performing patches and updates, executing backup and recovery procedures, and end user management and assistance, such as processing service requests and supporting end users having trouble with the customer's systems. The task of manually monitoring each component of the IT system to ensure the health of the system is particularly difficult for many IT departments.
Moreover, as enterprise software deployments increase in complexity, the costs for supporting such deployments are additionally increasing (and comprise a large portion of the total cost of ownership of enterprise software). With conventional systems, the support load normally scales up with a number of users. Therefore, there is often little (if any) cost savings in large deployments. This lack of cost savings is based, in part, on the fact that such arrangements are often inefficient (e.g., support requests are often not routed to the correct entities), fault-prone (e.g., users often do not adequately describe the situation requiring support and its context), and time-intensive (e.g., the situation requiring support cannot be simulated). Such conventional support processes are often not repeatable as a structured mechanism for symptom description and cause identification, nor do such processes optimally resolve identified errors.